Data mirroring is a common technique used to ensure reliability in data storage arrays. In a typical storage array that employs data mirroring, the mirroring is accomplished by writing the information at two different locations. Some prior art systems write the information 180° out of phase on the same disc; thus, reducing the capacity of the drive by at least half. On the other hand, some prior art systems write the data from one disc drive onto a second disc drive in the array; this method requires having a second drive for every first drive in the array. These prior art systems require twice as many of the number of drives in an array to meet the non-mirrored design requirements. Consequently, the prior art designs are expensive and inefficient solutions.
Further, in the prior art systems described above, the host has to wait until the array controller can give confirmation that both of the data locations have been written. While both of these writes may be performed at the same time, the simultaneous writing of both sets of data to two different locations is an inefficient process.
The prior art data mirroring systems fail to solve all of the problems associated with mirroring an array of drives. Therefore, a need exists for a solution to the problem of providing data mirroring at a more efficient rate and lower cost. More specifically, a need exists for a solution to the problem of mirroring fast input/output drives, while reducing the cost incurred in mirroring without decreasing the system performance.
The present invention provides a solution to this and other problems, and offers other advantages over the prior art.